From: Stephen Eglen Date: Tue, 25 Nov 2003 14:37:44 +0000 (+0000) Subject: iswitchb-read-buffer: check that iswitchb-exit is not 'usefirst (set X-Git-Tag: archive/raspbian/1%29.2+1-2+rpi1~1^2~24893 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/www.github.com/%22bookmarks:///%22http:/www.example.com/cgi/%22https:/www.github.com/%22bookmarks:/?a=commitdiff_plain;h=76aa0d5c8df8bc9b944f3c5a2352bb6a44fce98e;p=emacs.git iswitchb-read-buffer: check that iswitchb-exit is not 'usefirst (set when user presses RETURN to select buffer) before running: ;; This happens for example if the buffer was chosen with the mouse. (setq iswitchb-matches (list iswitchb-final-text))) iswitchb-exit-minibuffer: set iswitchb-exit to 'usefirst. These changes were made to fix the following bug reported by Markus Rost and John Wiegley: Evaluate: (progn (iswitchb-mode 1) (get-buffer-create "12") (get-buffer-create "1") (iswitchb-buffer)) You get prompted in the minibuffer. Type "1". The minibuffer shows iswitch 1{12,1} Hit RET. You find yourself in buffer "1" instead of "12", as you would expect from the documentation. This bug was introduced when iswitchb-read-buffer was updated to allow user to select items from the *Completions* buffer with the mouse. --- diff --git a/lisp/iswitchb.el b/lisp/iswitchb.el index d8f2a5cb214..51797da5605 100644 --- a/lisp/iswitchb.el +++ b/lisp/iswitchb.el @@ -610,7 +610,8 @@ If REQUIRE-MATCH is non-nil, an existing-buffer must be selected." nil ;require-match [handled elsewhere] nil ;initial-contents 'iswitchb-history))) - (if (get-buffer iswitchb-final-text) + (if (and (not (eq iswitchb-exit 'usefirst)) + (get-buffer iswitchb-final-text)) ;; This happens for example if the buffer was chosen with the mouse. (setq iswitchb-matches (list iswitchb-final-text))) @@ -712,7 +713,9 @@ The result is stored in `iswitchb-common-match-string'." (interactive) (if (or (not iswitchb-require-match) (iswitchb-existing-buffer-p)) - (throw 'exit nil))) + (progn + (setq iswitchb-exit 'usefirst) + (throw 'exit nil)))) (defun iswitchb-select-buffer-text () "Select the buffer named by the prompt.